package com.example.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.os.Message;

import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Timer;
import java.util.TimerTask;
//public class MainActivity extends AppCompatActivity {
//
//    private int currentColor = 0 ;
//    //定义一个颜色数组
//    final int[] colors = new int[]{
//            R.color.color1,
//            R.color.color2,
//            R.color.color3,
//            R.color.color4,
//            R.color.color5,
//            R.color.color6,
//    };
//    final int[] names = new int[] {
//            R.id.textView,
//            R.id.textView2,
//            R.id.textView3,
//            R.id.textView4,
//            R.id.textView5,
//            R.id.textView6,
//    };
//    TextView[] views = new TextView[names.length ] ;
//    //handler主要接收主线程发送的数据，并用此数据配合主线程更新UI
//    android.os.Handler handler = new android.os.Handler()
//    {
//        @Override
//        public void handleMessage(Message msg)
//        {
//            // 表明消息来自本程序所发送
//            if (msg.what == 0x234)
//            {
//                //依次改变testView的背景
//                for (int i = 0; i < names.length; i++)
//                {
//                    //收到一条msg就开始改变一次views的颜色（六个都依照colors的+currentcolor颜色来改）
//                    views[i].setBackgroundResource((colors[i]+ currentColor)% names.length);
//                }
//                currentColor++;
//            }
//            //将消息抛给父类，避免丢失
//            super.handleMessage(msg);
//        }
//    };
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
//        for (int i = 0; i < names.length; i++)
//        {
//            //为views设置初始颜色，（六个TestView）
//            views[i] = (TextView) findViewById(names[i]);
//        }
//        // 定义一个线程周期性地改变currentColor变量值
//        new Timer().schedule(new TimerTask() {
//            @Override
//            public void run() {
//                // 发送一条空消息通知系统改变6个TextView组件的背景色
//                handler.sendEmptyMessage(0x234);
//            }
//        }, 0, 200);
//    }
//}
public class NeonActivity extends AppCompatActivity {
    Button btn_back;
    private int currentColor = 0;
    //定义一个颜色数组
    final int[] colors = new int[]{
            R.color.color1,
            R.color.color2,
            R.color.color3,
            R.color.color4,
            R.color.color5,
            R.color.color6,
            R.color.color7,
            R.color.color8,

    };
    final int[] names = new int[]{
            R.id.textView,
            R.id.textView2,
            R.id.textView3,
            R.id.textView4,
            R.id.textView5,
            R.id.textView6,
            R.id.textView7,
            R.id.textView8,
    };
    TextView[] views = new TextView[names.length];
    //handler 主要接收主线程发送的数据，并用此数据配合主线程更新 UI
    android.os.Handler handler = new android.os.Handler() {
        @Override
        public void handleMessage(Message msg) {
// 表明消息来自本程序所发送
            if (msg.what == 0x234)//0x234 消息的辨别码，
//可以随便设置，通过 handler.sendEmptyMessage(0x234)
            {
//依次改变 testView 的背景
                for (int i = 0; i < names.length; i++) {
//收到一条msg就开始改变一次views的颜色（六个都依照 colors 的+currentcolor 颜色来改）
                    views[i].setBackgroundResource(colors[(i + currentColor) % names.length]);//该方法是实现颜色的不断自我循环，不断取余
                }
                currentColor++;//周期的变量自己相加
            }
//将消息抛给父类，避免丢失
            super.handleMessage(msg);
        }
    };

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_neon);
        btn_back();
        initView();
        for (int i = 0; i < names.length; i++) {
//根据控件的 ID，为多个 views 设置初始颜色，（六个 TestView）
            views[i] = (TextView) findViewById(names[i]);
        }
// 定义一个线程周期性地改变 currentColor 变量值
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
// 发送一条空消息通知系统改变 6 个TextView组件的背景色
                handler.sendEmptyMessage(0x234);//设置消息的识别码
            }
        }, 0, 1000);//0 为延迟，200 为多少次发送
    }

    private void btn_back() {
        btn_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent= new Intent();
                intent.setClass(NeonActivity.this,MainActivity6.class);
                startActivity(intent);
            }
        });
    }

    private void initView() {
        btn_back=findViewById(R.id.button_back);
    }
}
